》Resize
目前我們的遊戲寬高設為 640 x 320,但我們希望可以在任何視窗、裝置大小可以填滿整個畫面,讓遊戲體驗能夠更好,更加完善。
原本的狀況,如圖:
》HTML、CSS 內容
<head>
    .....
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
body {
    margin: 0;
    background-color: #000000;
}
canvas {
    position: absolute;
    top: 50%:
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
}
》Javascript 內容
在 onload 的時候,去執行 resize 並偵聽它。
window.onload = function() {
    function resize() {
        let canvas = document.querySelector('canvas')
        let ww = window.innerWidth
        let wh = window.innerHeight
        let wRatio =  ww / wh
        let gameRatio = config.width / config.height
        if (wRatio < gameRatio) {
            canvas.style.width = ww + 'px'
            canvas.style.height = ( ww / gameRatio ) + 'px'
        } else {
            canvas.style.width = ( wh * gameRatio ) + 'px'
            canvas.style.height = wh + 'px'
        }
    }
    resize()
    window.addEventListener('resize', resize, false)	// 偵聽事件 resize
}
》結論
今天我們偵聽 resize,重新計算遊戲畫面大小並調整,希望能讓使用者體驗更好。
今天就先到這裡,我們明天見。